3D Object Positioning in Street View

ABSTRACT

Systems, methods, and computer storage mediums are provided for correcting the placement of an object on an image. An example method includes providing the image and depth data that describes the depth of the three-dimensional scene captured by the image. The depth data describes at least a distance between a camera that captured the three-dimensional scene and one or more structures in the scene and a geolocation of the camera when the three-dimensional scene was captured. When the object is moved from a first location on the image to a second location on the image, a set of coordinates that describes the second location relative to the image is received. The set of coordinates are then translated into geolocated coordinates that describe a geolocation that corresponds to the second location. The set of coordinate is translated, at least in part, using the depth data associated with the image.

This application claims the benefit of U.S. Provisional Application No.61/450,056, filed Mar. 7, 2011, which is incorporated herein in itsentirety by reference.

FIELD

The present field generally relates to geographical information systems.

BACKGROUND

Geographical information systems provide geographic data to usersincluding maps and various geo-referenced data associated with the maps.Some geographic information systems also provide images of threedimensional scenes on Earth. These images are often associated with datadescribing the scenes captured in the images, such as the depth of thescene measured from the position of the camera.

Location data for places on the map include, inter alia, names andaddress. In some cases, location data may not represent the mostaccurate information. One situation of this, for example, is where abusiness is located in a building with an address on one street but theentrance to the business is located on an adjacent street.

BRIEF SUMMARY

The embodiments described herein include systems, methods, and computerstorage mediums for correcting the placement of an object positioned onan image. An example method includes providing the image and depth datathat describes the depth of the three-dimensional scene captured by theimage. The depth data describes at least a distance between a camerathat captured the three-dimensional scene and one or more structures inthe scene and a geolocation of the camera when the three-dimensionalscene was captured. When the object is moved from a first location onthe image to a second location on the image, a set of coordinates thatdescribes the second location relative to the image is received. The setof coordinates are then translated into geolocated coordinates thatdescribe a geolocation that corresponds to the second location. The setof coordinate is translated, at least in part, using the depth dataassociated with the image.

Further embodiments, features, and advantages of the invention, as wellas the structure and operation of the various embodiments are describedin detail below with reference to accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

The accompanying drawings, which are incorporated herein and form a partof the specification, illustrate the present embodiments and, togetherwith the description, further serve to explain the principles of thepresent invention and to enable a person skilled in the pertinent art tomake and use the present invention.

FIG. 1A illustrates an example user interface that may be used tocorrect the position of a location indicated on a map.

FIG. 1B illustrates an example diagram that describes athree-dimensional scene captured in a two dimensional image.

FIG. 2 illustrates an example computer system that may be used tocorrect the placement of an object on a two-dimensional image or a map.

FIG. 3 illustrates an example method for placing, determining, andstoring the location of an object on a two dimensional image thatrepresents a three dimensional scene.

FIG. 4 illustrates an example method for placing, determining, andstoring the location of an object on a map.

FIG. 5 illustrates a computer system useful for implementing componentsof the embodiments.

The present invention is described with reference to the accompanyingdrawings. The drawing in which an element first appears is typicallyindicated by the leftmost digit or digits in the corresponding referencenumber.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The embodiments described here include systems, methods, and computerstorage mediums that allow a user to update location information forplaces on a map. The exemplary embodiments provide systems and methodsfor correcting the placement of an object overlaid on either a map, acorresponding two dimensional image that represents the threedimensional scene in the map, or both. In the detailed description ofthe present invention that follows, references to “one embodiment,” “anembodiment,” “an example embodiment,” etc., indicate that the embodimentdescribed may include a particular feature, structure, orcharacteristic, but every embodiment may not necessarily include theparticular feature, structure, or characteristic. Moreover, such phrasesare not necessarily referring to the same embodiment. Further, when aparticular feature, structure, or characteristic is described inconnection with an embodiment, it is submitted that it is within theknowledge of one skilled in the art to effect such feature, structure,or characteristic in connection with other embodiments whether or notexplicitly described.

While the present embodiments are described herein with reference toillustrative embodiments for particular applications, it should beunderstood that embodiments are not limited thereto. Individuals skilledin the relevant art(s) with access to the teachings provided herein willrecognize additional modifications, applications, and embodiments withinthe scope thereof and additional fields in that would be of significantutility.

The detailed description is divided into sections. The first sectiondescribes an example user interface that may operate in conjunction withthe embodiments described herein. The second and third sections describeexample system and method embodiments, respectively, for correcting theplacement of an object on an image or a map. The fourth sectiondescribes an example computer system that may be used for carrying outembodiments in a computer readable medium.

Example User Interface

FIG. 1A illustrates an example user interface 100 that may be used tocorrect the position of a location indicated on a map. User interface100 may be provided, at least in part, by map server 210 included inFIG. 2, described below. User interface 100 includes image 110, map 120,markers 112 and 122, and pegman 124. Map 120 represents a portion of acity and image 110 displays a scene captured at a specific location inthe city. The specific location where image 110 was captured from isindicated on map 120 by pegman 124. The portion of the city shown in map120 is selected, at least in part, based on a user searching for aspecific location or address indicated as marker 122. Markers 112indicates the location that corresponds to marker 122 that is capturedin image 110.

User interface 100 may be configured such that markers 112 and 122respond to user input. For example, a user may select and move marker122 to a new location in map 120. As marker 122 is moved, thecoordinates of its location relative to map 120 (e.g., x/y coordinates)may be tracked. The coordinates may then be translated tolatitude/longitude coordinates using, for example, the followingformula:

orig = 256 × 2^(zoom-2)${longitude} = \frac{\left( {x - {orig}} \right) \times 360}{\left( {256 \times 2^{{zoom}\text{-}1}} \right)}$${latitude} = {\left( {{2 \times {\tan^{- 1}\left( ^{\frac{{({{orig}\text{-}y})} \times 2\pi}{256 \times 2^{{zoom} - 1}}} \right)}} - \frac{\pi}{2}} \right) \times \frac{360}{2\pi}}$

Once the latitude/longitude coordinates are determined, they may then beused to determine the coordinates of marker 112 relative to image 110.The position of marker 112 may then be updated and provided to the user.

Similarly, a user may select and move marker 112 to a new location onimage 110. As the user moves marker 112, marker 112's coordinatesrelative to map 110 (e.g., x/y) may be tracked. The coordinates may beused in conjunction with data describing the three-dimensional scenecapture in image 110 to determine the latitude/longitude coordinatesthat correspond to the location of marker 112 within the scene capturedin image 110. The data describing the three-dimensional scene mayinclude, for example, the depth of the scene represented as the distancefrom the camera to a structure within image 110's field of view. Thedata may also include a separate depth value for each pixel in image 110or a depth value for a range of pixels in image 110.

FIG. 1B illustrates an example diagram 150 that describes athree-dimensional scene captured in a two-dimensional image such as, forexample, image 110. Diagram 150 includes virtual camera 151,depth,values 152 and 153, and scene 154. Each of depth values 152 and153 may indicate the distance between the camera that captured thescene, represented by virtual camera 151, and the points indicated bydepth values 152 and 153, respectively. Each of depth values 152 and 153may correspond to either a single pixel or a group of pixels that makeup the image. The points indicated by depth values 152 and 153 may be,for example, the façade of one or more structured captured in the image.Example structures may include roads, buildings, landscapes, geographicformations, or other physical objects. Some images or portions ofimages, however, may not capture a structure. In this case, pixels thatdo not correspond to a structure may be indicated by a null or zerodepth value or an infinite depth value. When this occurs, either amaximum depth value or a depth value calculated from depth values ofadjacent pixels may be used in determining a location of a marker whenmoving the marker on the image.

Depth values, including depth values 152 and 153, may be determined, forexample, when the image is captured. Additional data may also becollected such as, for example, the location, orientation, and angle ofthe camera. This additional data may be used in conjunctions with thedepth values to determine latitude/longitude coordinates for any pointor pixel in the image. A person of skill in the art will readilyunderstand how to determine latitude/longitude coordinates using theadditional data and the depth values described above.

In some cases, it may be preferred to constrain the location of themarker on any one of the map or the two-dimensional image to the façadeof a structure either captured in the image or represented on the map.The marker may be constrained by using, for example, the depth values todetermine a maximum depth for each pixel or group of pixels that make upthe scene captured in the image. Once the maximum depth is determined, amarker or other indication object may be moved along the determinedmaximum depth that corresponds to the façade of the structures capturedin the image.

Example System Embodiments

FIG. 2 illustrates an example computer system 200 that may be used tocorrect the placement of an object (e.g., marker) on a two-dimensionalimage or a map. System 200 includes map server 210, 2D image & depthdatabase 211, coordinate analysis component 212, object storage database213, and object information database 214. Map server 210 may beimplemented by any geographic information system or computer systemconfigured to make geo-referenced data available to a client system. Oneof skill in the art will readily recognize that map server 210 may beimplemented in software or hardware and may be placed on a network localto a client system or a remote network available through, for example,the Internet. One of skill in the art will also recognize that 2D image& depth database 211, object storage database 213, and objectinformation database 214 may be included with the computer system thatimplements map server 210 or may each be positioned on one or moreseparate computer systems.

Map server 210 is configured to provide a variety of geo-referenced dataincluding, for example, maps, locations that exist on the maps, imagesof specific locations on the maps, and information about specificlocations on the maps. Map server 210 may retrieve the geo-referenceddata from one or more database or file storage system such as, forexample, 2D image & depth data database 211. The 2D image & depth datadatabase 211 may be configured to provide, for example, images ofgeolocations or data related to the geolocations captured in the images.The 2D image & depth data database 211 may also be configured inconjunction with other databases or file systems to provide anyparticular set of maps, images, or other geo-referenced data that isserved by map server 210.

The subject matter captured in the images of the geolocations mayinclude, for example, buildings, landmarks, roads, or other geographicfeatures. The images may represent a fixed field-of-view or may coverfields-of-view up to 360 degrees. Along with the images, 2D image &depth database 211, for example, may also provide data about thegeolocated scene captured in an image. Examples of such data mayinclude, for example, the location and orientation of the camera whenthe image was captured, the time the image was captured, or the size ofthe scene where the image was captured. The data regarding the size ofthe scene may include depth data that, for example, describes thedistance from the camera to one or more points in the scene. In someembodiments, an image is captured from the street and the depth datadescribes the distance from the camera in the street to the front of abuilding directly in front of the camera lens. In some embodiments, animage is captured from the street and the depth data describes multipledistances from the camera in the street to multiple points on the frontof a building directly in front of the camera lens.

Map server 210 may also server data retrieved from object storagedatabase 213. Object storage database 213 may be configured to store thelocation of one or more objects that may be placed on a map. Objectstorage database 213 may also be configured to store the location of oneor more objects placed on images of geolocations provided by map server210. An object may include, for example, any computer generated graphiccapable of displaying data on either a map or an image. Data that may bedisplayed may include, for example, the location of either a point on amap or a point on a corresponding two dimensional image or informationabout a point.

Objects may be initially set on the map based on data such as, forexample, the name or address of a location indicated by the object'sposition. Objects may also be moved by a user to better indicate, eitheron a map or an image, the physical location of the place indicated bythe data associated with the object such as, for example, addresses,landmarks, or other points on the map. The location (e.g., coordinates)of the objects placed on the map may be stored in an number of formatsincluding, for example, Cartesian coordinates relative to the image ormap displayed in the user interface or latitude and longitudecoordinates relative to either the area covered by the map or the scenecaptured in the image.

In some embodiment, map server 210 may also retrieve data from objectinformation database 214. Object information database 214 may storeinformation corresponding to a geolocation represented on the map. Thisinformation may be generated from any publicly available source (e.g., atelephone directory) or may be generated from a private database. Theinformation may include, for example, the name of a geolocation, theaddress of the geolocation, the name or address of a business at thegeolocation, or any other information describing the geolocation. Thisinformation may be associated and displayed with an object that isplaced on the map. This information may also be associated and displayedwith an object that is placed on a corresponding image.

In some embodiments, the information may only include an address of ageolocation to be indicated by an object. The address may be used todetermine where to place the object on a map. The position on the mapmay be determined automatically by retrieving the geolocated coordinatesof the address from a database. The geolocated coordinates retrievedfrom the database, however, may not result in the best geolocation forthe address. For example, the address associated with a geolocation onone side of a building when a better geolocation is on another side ofthe building. In this case, map server 210 may be configured to receivean updated geolocation for the address when, for example, the objectassociated with the address is moved to another position on either themap or the image.

To correct the geolocation, a user interface such as, for example,user-interface component 230 may be configured to receive input from auser that moves the object on either the map or the image. Userinterface component 230 may be configured to display the map and/or thecorresponding image along with any objects or other geo-referenced dataretrieved from map server 210. An example user interface is provided inFIG. 1A, described above. User-interface component 230 may also beconfigured to allow the user to pan or change the viewing scale of themap or the image.

In some embodiments, user interface component 230 may include coordinatetracking module 231 and graphic display module 232. Graphic displaymodule 232 may be configured to display the geo-referenced data receivedfrom map server 210 and coordinate tracking module 231 may be configuredto track the movement of an object as a user moves or otherwiserelocates the object.

In some embodiments, user interface component 230 may include an editingmode that allows the user to select and move an object to anotherposition on either the map or the image. The coordinates of the objectrelative to the user interface, for example, may be provided tocoordinate analysis component 212. Coordinate analysis component 212 maybe configured to receive the coordinates either while the object isbeing moved or upon completion of the object's movement. Coordinateanalysis component 212 may then translates the received coordinates toan alternate format (e.g., Cartesian to lat/long). The coordinates ofthe object may be translated to an alternate format using, for example,the equations provided above. The equations provided above are providedas examples and are not intended to limit the embodiments describedherein. Additionally, given the description provided herein, one ofskill in the art will readily understand how to translate one coordinatesystem to another based on the location of an object on either the mapor the corresponding image.

While system 200 shows coordinate analysis component 212 operativelyconnected to map server 210, coordinate analysis component 212 mayoptionally be includes with user interface component 230 or may beimplemented to run in software executed by map server 210 or computingdevice 240.

In system 200, user interface component 230 interfaces with map server210 via network 220. Network 220 may include any network or combinationof networks that can carry data communication. These networks mayinclude, for example, a local area network (LAN) or a wide area network(WAN), such as the Internet. LAN and WAN networks may include anycombination of wired (e.g., Ethernet) or wireless (e.g., Wi-Fi, 3G, or4G) network components.

Example Method Embodiments

FIG. 3 illustrates an example method 300 for placing, determining, andstoring the location of an object on a two dimensional image thatrepresents a three dimensional scene. Method 300 may be used inoperation of system 200 in FIG. 2 and may also be used simultaneouslyand in conjunction with method 400 in FIG. 4.

In stage 302, a map server provides content including a two dimensionalimage that represents a three dimensional scene. This content may bedisplayed to a user in either a web browser or any other clientapplication capable of displaying images or geo-referenced data. Thiscontent may also include one or more objects that are overlaid on thedisplayed content. The objects may be provided with the geo-referenceddata or may be created and positioned by a user. Objects may include,for example, a marker indicating the position of a specific geolocationwithin the image. Whether provided by the map server or created by theuser, objects may be moved by the user (stage 303). If an object ismoved by the user, the coordinates of the object are tracked and sent tothe map server (stage 304).

Once the object's coordinates are received by the map server, the mapserver retrieves data describing the three dimensional scene captured bythe image. The data may include depth data that describes the distancebetween a camera used to capture the image and one or more structures inthe image. The depth data for an image, however, may be incomplete orinaccurate due to a lack of structures in the image. Thus, it will bedetermined whether depth data is available for the object's coordinates(stage 305). If depth data is not available for the object'scoordinates, a maximum set of depth data may be used or depth data maybe approximated based on adjacent coordinates (stage 306). Once depthdata for the object's coordinates is either retrieved or calculated, themap server determines new latitude and longitude coordinates based onthe object's coordinates and the depth data (stage 307). The object isthen re-placed on the image in a location that corresponds to the newlatitude and longitude coordinates (stage 308).

In some embodiments, it may be desired to not allow an object to beplaced behind the façade a structure captured in an image. In this case,the coordinates of the object and the calculated latitude and longitudecoordinates may differ such that the object is placed at a position onthe image that is different from the position initially selected by theuser. This is due to the object being constrained to the façade of thestructure captured in the image. The location of the façade within theimage may be determined by the depth values associated with the image.

In some embodiments, the latitude and longitude coordinates may bestored for later retrieval by one or more users (stage 309). In anotherembodiment, the latitude and longitude coordinates may be associatedwith the name, address, or other information describing the locationwithin the image (stage 310). In another embodiment, the user may selectan object with corresponding information and move the object to alocation that more precisely relates to the corresponding information.

FIG. 4 illustrates an example method 400 for placing, determining, andstoring the location of an object on a map. Method 400 may be used inoperation of system 200 in FIG. 2 and may also be used simultaneouslyand in conjunction with method 300 in FIG. 3

In stage 402, the map server delivers content including a map. Thiscontent may be displayed to a user in either a web browser or any otherclient application capable of displaying images or geo-referenced data.This content may also include one or more objects that are overlaid onthe displayed content. Additionally, the user may create and positionnew objects on the displayed content. One example of an object is amarker indicating the position of a specific geolocation within the map.Whether provided by the map server or created by the user, objects maybe moved by the user (stage 403). If an object is moved by the user, thecoordinates of the object are tracked and sent to the map server (stage404).

The map server receives coordinates of the object and translates thecoordinates to latitude and longitude coordinates. If the object'scoordinates are in Cartesian format (e.g., x/y coordinates) based on theobject's screen position, the equations listed above may be used totranslate the screen coordinates to latitude and longitude coordinates(stage 405). These equation are provided as an example and are notintended to limit the embodiments described herein. Other methods fortranslating the coordinates are with the knowledge of a person of skillin the art.

Once the object's coordinates are translated into latitude and longitudecoordinates, the object is then re-placed on the map based on the newlatitude and longitude coordinates (stage 406). Along with updating theobject's position on the map, the map server may update the coordinatesof an object that is placed on an image shows a scene that correspondsthe geolocation of the object (stage 407). In some embodiments, thiswill result in the object being in the same geolocation that is selectedby the user. In some embodiments, however, the latitude and longitudecoordinates may differ from the coordinates selected by the user due tothe object being constrained to the façade of one or more structuresrepresented on the map. In this case, three dimensional data describingthe scene in the map is used to constrain the latitude and longitudecoordinates of the object so that the object cannot be placed behind thefaçade of the structures represented on the map.

In some embodiments, the latitude and longitude coordinates may bestored for later retrieval one or more users (stage 408). In someembodiments, the latitude and longitude coordinates may be associatedwith the name, address, or other information that corresponds to ageolocation on the map (stage 409). In some embodiments, the user mayselect an object with corresponding information and move the object to alocation that more precisely relates to the corresponding information.

In some embodiments, methods 300 and 400 are simultaneously used to viewand position objects on both a map and a corresponding image. In theseembodiments, a first object is placed on a map at a position thatcorresponds to a geolocation. A second object is placed on an image thatcaptures the real-world scene that includes the geolocation. The secondobject is placed at a position on the image that corresponds to thegeolocation. When the user moves the first object, method 400 may beused to determine the latitude and longitude coordinates of the firstobject. The latitude and longitude coordinates may then be used todetermine where to reposition the second object on the image so that iscorresponds to the first object's position on the map. Similarly, whenthe user moves the second object, method 300 may be used to determinethe latitude and longitude coordinates of the second object. Thelatitude and longitude coordinates may then be used to determine whereto reposition the first object on the map so that is corresponds to thesecond object's position on the image.

Example Computer System

FIG. 5 illustrates and exemplary computer system useful for implementingcomponents of the embodiments. For example, map server 210, 2D image anddepth database 211, object storage database 213, object informationdatabase 214, or user interface component 230 may be implemented usingcomputer(s) 500.

Computer 500 can be any commercially available and well known computercapable of performing the functions described herein, such as computersavailable from International Business Machines, Apple, Oracle, HP, Dell,Cray, etc.

Computer 500 includes one or more processors (also called centralprocessing units, or CPUs), such as a processor 506. Processor 506 isconnected to a communication infrastructure 504.

Computer 500 also includes a main or primary memory 508, such as randomaccess memory (RAM). Primary memory 508 has stored therein control logic568A (computer software), and data.

Computer 500 also includes one or more secondary storage devices 510.

Secondary storage devices 510 include, for example, a hard disk drive512 and/or a removable storage device or drive 514, as well as othertypes of storage devices, such as memory cards and memory sticks.Removable storage drive 514 represents a floppy disk drive, a magnetictape drive, a compact disk drive, an optical storage device, tapebackup, etc.

Removable storage drive 514 interacts with a removable storage unit 516.

Removable storage unit 516 includes a computer usable or readablestorage medium 564A having stored therein computer software 568B(control logic) and/or data. Removable storage unit 516 represents afloppy disk, magnetic tape, compact disk, DVD, optical storage disk, orany other computer data storage device. Removable storage drive 514reads from and/or writes to removable storage unit 516 in a well knownmanner.

Computer 500 also includes input/output/display devices 566, such asmonitors, keyboards, pointing devices, Bluetooth devices, etc.

Computer 500 further includes a communication or network interface 518.

Network interface 518 enables computer 500 to communicate with remotedevices. For example, network interface 518 allows computer 500 tocommunicate over communication networks or mediums 564B (representing aform of a computer usable or readable medium), such as LANs, WANs, theInternet, etc. Network interface 518 may interface with remote sites ornetworks via wired or wireless connections.

Control logic 568C may be transmitted to and from computer 500 viacommunication medium 564B.

Any tangible apparatus or article of manufacture comprising a computerusable or readable medium having control logic (software) stored thereinis referred to herein as a computer program product or program storagedevice. This includes, but is not limited to, computer 500, main memory508, secondary storage devices 510 and removable storage unit 516. Suchcomputer program products, having control logic stored therein that,when executed by one or more data processing devices, cause such dataprocessing devices to operate as described herein, represent theembodiments.

Embodiments can work with software, hardware, and/or operating systemimplementations other than those described herein. Any software,hardware, and operating system implementations suitable for performingthe functions described herein can be used. Embodiments are applicableto both a client and to a server or a combination of both.

CONCLUSION

The Summary and Abstract sections may set forth one or more but not allexemplary embodiments as contemplated by the inventor(s), and thus, arenot intended to limit the present embodiments and the appended claims inany way.

Embodiments have been described above with the aid of functionalbuilding blocks illustrating the implementation of specified functionsand relationships thereof. The boundaries of these functional buildingblocks have been arbitrarily defined herein for the convenience of thedescription. Alternate boundaries can be defined so long as thespecified functions and relationships thereof are appropriatelyperformed.

The foregoing description of the specific embodiments will so fullyreveal the general nature of the invention that others can, by applyingknowledge within the skill of the art, readily modify and/or adapt forvarious applications such specific embodiments, without undueexperimentation, without departing from the general concept of thepresent invention. Therefore, such adaptations and modifications areintended to be within the meaning and range of equivalents of thedisclosed embodiments, based on the teaching and guidance presentedherein. It is to be understood that the phraseology or terminologyherein is for the purpose of description and not of limitation, suchthat the terminology or phraseology of the present specification is tobe interpreted by the skilled artisan in light of the teachings andguidance.

The breadth and scope of the present invention should not be limited byany of the above-described exemplary embodiments, but should be definedonly in accordance with the following claims and their equivalents.

1. A computer system for correcting the placement of an object on animage, the image representing a three dimensional geolocated scene, thecomputer system comprising: a map server component configured to provideat least the image to a user interface component; a coordinate analysiscomponent configured to: receive a set of coordinates from the userinterface component when the object is moved from a first location onthe image to a second location on the image, the set of coordinatesdescribing the second location relative to the image, and translate theset of coordinates into geolocated coordinates that describe ageolocation that corresponds to the second location, wherein the set ofcoordinate is translated, at least in part, using depth data associatedwith the image, the depth data describing the depth of thethree-dimensional scene captured in the image and including at least adistance between a camera that captured the three-dimensional scene andone or more structures in the scene, wherein the coordinate analysiscomponent is further configured to constrain the geolocated coordinatesbased, at least in part, on a maximum depth value associated with thedepth data; a memory unit configured to store at least the coordinateanalysis component; and a computer processor configured to execute atleast the coordinate analysis component.
 2. The computer system of claim1, wherein the coordinate analysis component is further configured toassociate the geolocated coordinates with geo-referenced data associatedwith the object.
 3. The computer system of claim 2, wherein thegeo-referenced data associated with the object includes at least one ofa name or physical address that corresponds to the geolocatedcoordinates.
 4. The computer system of claim 1, wherein the coordinateanalysis component is further configured to determine geolocatedcoordinates for the first location, wherein the geolocated coordinatesfor the first location are determined, at least in part, from an addressassociated with the object's geo-referenced data.
 5. The computer systemof claim 1, wherein the coordinate analysis component is furtherconfigured to provide the geolocated coordinates to the user-interfacecomponent, the user-interface component configured to display at leastthe image and geo-referenced data associated with the image, wherein thegeolocated coordinates are used, at least in part, to determine theobject's position on the image.
 6. (canceled)
 7. The computer system ofclaims 1, wherein the coordinate analysis component is furtherconfigured to constrain the geolocated coordinates based, at least inpart, on a depth value from the depth data that is associated one ormore pixels of the image that correspond to the second location.
 8. Acomputer-implemented method for correcting the placement of an object onan image, the image representing a three dimensional geolocated scene,the method comprising: providing, by at least one computer processor,the image to a user interface component; receiving, by the at least onecomputer processor and from the user interface component, a set ofcoordinates that indicates movement of the object from a first locationto a second location relative to the image; and translating, by the atleast one computer processor, the set of coordinates into geolocatedcoordinates that describe a geolocation that corresponds to the secondlocation, wherein the set of coordinate is translated, at least in part,using the depth data associated with the image, the depth datadescribing the depth of the three-dimensional scene captured in theimage and including at least a distance between a camera that capturedthe three-dimensional scene and one or more structures in the scene;wherein the translating includes constraining the geolocated coordinatesbased, at least in part, on a maximum depth value associated with thedepth data.
 9. The computer-implemented method of claim 8, furthercomprising: associating the geolocated coordinates with geo-referenceddata associated with the object.
 10. The computer-implemented method ofclaim 9, wherein the geo-referenced data associated with the objectincludes at least one of a name or physical address that corresponds tothe geolocated coordinates.
 11. The computer-implemented method of claim8, further comprising: determining geolocated coordinates for the firstlocation, wherein the geolocated coordinates for the first location aredetermined, at least in part, from an address associated with theobject's geo-referenced data.
 12. The computer-implemented method ofclaim 8, further comprising: providing the geolocated coordinates to theuser-interface component, the user-interface component configured todisplay at least the image and geo-referenced data associated with theimage, wherein the geolocated coordinates are used, at least in part, todetermine the object's position on the image,
 13. (canceled)
 14. Thecomputer-implemented method of claims 8, further comprising:constraining the geolocated coordinates based, at least in part, on adepth value from the depth data that is associated one or more pixels ofthe image that correspond to the second location.
 15. Acomputer-implemented method for correcting the placement of an object ona map comprising: providing, by at least one computer processor,geo-referenced data that includes at least a map, a first objectindicating a geolocation on the map, an image that captured the at leasta portion of a scene that includes the geolocation, and a second objectthat indicates the geolocation on the image; receiving, by at least onecomputer processor, a set of coordinates that describes the secondobject moving from a first location on the image to a second location onthe image, wherein the set of coordinate are relative to the image;translating, by at least one computer processor, the set of coordinatesinto geolocated coordinates based, at least in part, on depth data,wherein the depth data describes at least a distance between a cameraused to capture the scene and one or more structures in the scene, thetranslating including constraining the geolocated coordinates based on amaximum depth value included in the depth data, wherein the maximumdepth value describes a maximum distance between the camera and astructure in the scene; and providing, by at least one computerprocessor, the geolocated coordinates to a user interface configured todisplay at least the map and the first object, wherein the geolocatedcoordinates are used to move the first object to a location on the mapthat corresponds to the geolocation coordinates.
 16. Thecomputer-implemented method of claim 15, further comprising: associatingthe geolocated coordinates with geo-referenced data associated with eachof the first and second objects.
 17. (canceled)
 18. A computer systemfor correcting the placement of an object on a map comprising: a mapserver configured to: provide geo-referenced data that includes at leasta map, a first object indicating a geolocation on the map, an image thatcaptured at least a portion of a scene that includes the geolocation,and a second object that indicates the geolocation on the image; receivea set of coordinates that describes the second object moving from afirst location on the image to a second location on the image, whereinthe set of coordinate are relative to the image; translate the set ofcoordinates into geolocated coordinates based, at least in part, ondepth data, wherein the depth data describes at least a distance betweena camera used to capture the scene and one or more structures in thescene; and provide the geolocated coordinates to a user interfaceconfigured to display at least the map and the first object, wherein thegeolocated coordinates are used to move the first object to a locationon the map that corresponds to the geolocation coordinates, wherein themap server is further configured to constrain the geolocated coordinatesbased on a maximum depth value included in the depth data, wherein themaximum depth value describes a maximum distance between the camera anda structure in the scene.
 19. The computer system of claim 18, whereinthe map server is further configured to associate the geolocatedcoordinates with geo-referenced data associate with each of the firstand second objects.
 20. (canceled)